
#ifndef _ka_geom_h
#define _ka_geom_h

namespace ka {
    class Point {
	public:
		Point(float xpos, float ypos)
        : x(xpos), y(ypos) {}
        
		Point()
        : x(0.0f), y(0.0f) {}
		
		float distTo(Point p) const;
		Point operator/(float v) const;
		Point &operator+=(Point p);
		Point &operator+=(float s);
        
		float x, y;
        
        static const Point ZERO;
	};

	class Size {
	public:
		Size(float sizeWidth, float sizeHeight)
        : width(sizeWidth), height(sizeHeight) {}
        
		Size()
        : width(0.0f), height(0.0f) {}
        
		float width, height;
        
        static const Size ZERO;
	};
    
	class Rect {
	public:
		Rect(Point rectOrigin, Size rectSize)
        : origin(rectOrigin), size(rectSize) {}
        
		Rect() {}
        
		Point origin;
		Size size;
	};
}

#endif